/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.going.vista;

import co.com.going.logica.IAdministradorLogica;
import co.com.going.modelo.Administrador;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import org.primefaces.component.commandbutton.CommandButton;
import org.primefaces.component.inputtext.InputText;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author Olguita
 */
@ManagedBean (name="VistaAdministrador")
@RequestScoped
public class VistaAdministrador {

    
    
    @EJB
    private IAdministradorLogica iAdministradorLogica;
    
    
    private InputText txtIdAdministrador;
    private InputText txtNombreAdministrador;
    private InputText txtApellidoAdministrador;
    private InputText txtPasswordAdministrador;
    private InputText txtConfPassAdministrador;
    private CommandButton btnRegistrar;
    private CommandButton btnModificar;
    private CommandButton btnEliminar;
    private CommandButton btnLimpiar;
    private List<Administrador> Administradores;
    private Administrador AdminSeleccionado;
    
    
    public VistaAdministrador() {
    }

    public IAdministradorLogica getiAdministradorLogica() {
        return iAdministradorLogica;
    }

    public void setiAdministradorLogica(IAdministradorLogica iAdministradorLogica) {
        this.iAdministradorLogica = iAdministradorLogica;
    }

    public InputText getTxtIdAdministrador() {
        return txtIdAdministrador;
    }

    public void setTxtIdAdministrador(InputText txtIdAdministrador) {
        this.txtIdAdministrador = txtIdAdministrador;
    }

    public InputText getTxtNombreAdministrador() {
        return txtNombreAdministrador;
    }

    public void setTxtNombreAdministrador(InputText txtNombreAdministrador) {
        this.txtNombreAdministrador = txtNombreAdministrador;
    }

    public InputText getTxtApellidoAdministrador() {
        return txtApellidoAdministrador;
    }

    public void setTxtApellidoAdministrador(InputText txtApellidoAdministrador) {
        this.txtApellidoAdministrador = txtApellidoAdministrador;
    }

    public InputText getTxtPasswordAdministrador() {
        return txtPasswordAdministrador;
    }

    public void setTxtPasswordAdministrador(InputText txtPasswordAdministrador) {
        this.txtPasswordAdministrador = txtPasswordAdministrador;
    }

    public InputText getTxtConfPassAdministrador() {
        return txtConfPassAdministrador;
    }

    public void setTxtConfPassAdministrador(InputText txtConfPassAdministrador) {
        this.txtConfPassAdministrador = txtConfPassAdministrador;
    }

    public CommandButton getBtnRegistrar() {
        return btnRegistrar;
    }

    public void setBtnRegistrar(CommandButton btnRegistrar) {
        this.btnRegistrar = btnRegistrar;
    }

    public CommandButton getBtnModificar() {
        return btnModificar;
    }

    public void setBtnModificar(CommandButton btnModificar) {
        this.btnModificar = btnModificar;
    }

    public CommandButton getBtnEliminar() {
        return btnEliminar;
    }

    public void setBtnEliminar(CommandButton btnEliminar) {
        this.btnEliminar = btnEliminar;
    }

    public CommandButton getBtnLimpiar() {
        return btnLimpiar;
    }

    public void setBtnLimpiar(CommandButton btnLimpiar) {
        this.btnLimpiar = btnLimpiar;
    }

    
    public List<Administrador> getAdministradores() {
        
        try {
            Administradores=iAdministradorLogica.Administradores();
            
        } catch (Exception ex) {
            Logger.getLogger(VistaAdministrador.class.getName()).log(Level.SEVERE, null, ex);
        }
        return Administradores;
    }

    public void setAdministradores(List<Administrador> Administradores) {
        this.Administradores = Administradores;
    }

    public Administrador getAdminSeleccionado() {
        return AdminSeleccionado;
    }

    public void setAdminSeleccionado(Administrador AdminSeleccionado) {
        this.AdminSeleccionado = AdminSeleccionado;
    }
    
    
    public void Seleccionar_Administrador(SelectEvent event){
        
        Administrador administrador= (Administrador) event.getObject();
        
        txtIdAdministrador.setValue(administrador.getIdAdmin());
        txtNombreAdministrador.setValue(administrador.getNombre());
        txtApellidoAdministrador.setValue(administrador.getApellidos());
        txtPasswordAdministrador.setValue("");
        txtConfPassAdministrador.setValue("");
        txtIdAdministrador.setDisabled(true);
        btnModificar.setDisabled(false);
        btnEliminar.setDisabled(false);
        btnRegistrar.setDisabled(true);
                
    }
    
    
    public void funcion_Registrar(){
        
            try {
                Administrador  administrador=new Administrador();
                administrador.setIdAdmin(Long.parseLong(txtIdAdministrador.getValue().toString().trim()));
                administrador.setNombre(txtNombreAdministrador.getValue().toString().trim().toUpperCase());
                administrador.setApellidos(txtApellidoAdministrador.getValue().toString().trim().toUpperCase());
                administrador.setContrasena(txtConfPassAdministrador.getValue().toString().trim());
                iAdministradorLogica.crearAdmin(administrador);
                FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage("El Administrador Fue Creado con Exito"));
                funcion_Limpiar();

            } catch (Exception ex) {
                Logger.getLogger(VistaPais.class.getName()).log(Level.SEVERE, null, ex);
                FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(ex.getMessage()));
            }

        }
    
    public void funcion_Modificar(){
        
        try {
                Administrador  administrador=new Administrador();
                administrador.setIdAdmin(Long.parseLong(txtIdAdministrador.getValue().toString().trim()));
                administrador.setNombre(txtNombreAdministrador.getValue().toString().trim().toUpperCase());
                administrador.setApellidos(txtApellidoAdministrador.getValue().toString().trim().toUpperCase());
                administrador.setContrasena(txtConfPassAdministrador.getValue().toString().trim());
                iAdministradorLogica.crearAdmin(administrador);
                FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage("El Administrador Fue Modificado con Exito"));
                funcion_Limpiar();

            } catch (Exception ex) {
                Logger.getLogger(VistaPais.class.getName()).log(Level.SEVERE, null, ex);
                FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(ex.getMessage()));
            }
        
    }
    
    public void funcion_Eliminar(){
        
    }
    
    public void funcion_Limpiar(){
        
        txtIdAdministrador.setValue("");
        txtNombreAdministrador.setValue("");
        txtApellidoAdministrador.setValue("");
        txtPasswordAdministrador.setValue("");
        txtConfPassAdministrador.setValue("");
        btnEliminar.setDisabled(false);
        btnRegistrar.setDisabled(true);
        btnModificar.setDisabled(false);
        txtIdAdministrador.setDisabled(true);
        btnLimpiar.setDisabled(true);
        
        
    }
    
    
}
